home *** CD-ROM | disk | FTP | other *** search
- Path: nnrp.info.ucla.edu!usenet
- From: Dennis Rahaman <dennisr@ucla.edu>
- Newsgroups: comp.lang.c++
- Subject: Virtual Base Class
- Date: Thu, 07 Mar 1996 18:17:52 -0800
- Organization: UCLA
- Message-ID: <313F98D0.102E@ucla.edu>
- NNTP-Posting-Host: ts18-8.wla.ts.ucla.edu
- Mime-Version: 1.0
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- X-Mailer: Mozilla 2.0 (Win95; I)
-
- This is what I want to do:
-
- a
- / \
- b c
- \ /
- d
-
-
- class a
- {
- //...
- };
-
- class b : public virtual a
- {
- //...
- };
-
- class c : public virtual b
- {
- //...
- };
-
- class d : public b, public c
- {
- //...
- };
-
-
- void f ()
- {
- a a1;
- d* pd = (d*) &a1; // error: can't cast virtual base to derived
- }
-
- ///////////////////////////////////////////////////////////
- Can someone explain why I can't cast a virtual base class to a derived
- class?
-
- What should I do instead?
-
- Any help would be appreciated.
-
- - Dennis
-